#include <iostream>
#include <algorithm> //算法有关的头文件
#include <vector> 

using namespace std;

/*
	一个try可以对应多个catch(目的：为了处理多个不同类型的异常)
	C++规定：
	    一个函数可以抛出一种异常类型，也可以抛出多种不同的异常类型
*/

int fun(int n)
{
	if(n>0)
		return 0; //成功
	else if(n<0)
		throw -1;   //抛出整型异常
	else
		throw 6.66; //抛出浮点型异常
}
int main()
{
	try  //尝试
	{
		//fun(12);   //成功，catch不会执行
		fun(-12);  //失败，catch会执行
		//fun(0);      //失败，catch会执行
	}catch(int n)
	{
		cout<<"函数调用失败，fun抛出了整型异常，值是： "<<n<<endl;
	}catch(double n)
	{
		cout<<"函数调用失败，fun抛出了浮点型异常，值是： "<<n<<endl;
	}
	cout<<"主函数继续往后执行"<<endl;
}